home *** CD-ROM | disk | FTP | other *** search
- Ç*NB"KERMIT 7.DOC"
- Ç*FP0
- ├64┬╧╧╘.┬┴╙ - ┬╧╧╘╙╘╥┴╨ ╨╥╧╟╥┴═ ╞╧╥ ├64─╪╠ ╨AGE 29
-
-
- ╔╔. ├64┬╧╧╘.┬┴╙ - ┬╧╧╘╙╘╥┴╨ ╨╥╧╟╥┴═ ╞╧╥ ├64─╪╠
-
- ╚ERE IS THE DOWNLOAD PROGRAM FOR THE ├64. ╬OTE THAT THE ╥╙-232
- CHANNEL OPEN STATEMENT IN LINE 10 MAY NEED TO BE MODIFIED FOR THE
- PARTICULAR HOST.
-
- ╘HE MAINFRAME HOST SHOULD HAVE A ├64┬╧╧╘ PROGRAM TO ACCOMPANY THIS
- ONE WHICH RUNS ON THE ├64. ├64┬╧╧╘ IS CURRENTLY WRITTEN IN ├╠╒,
- AND IS AVAILABLE IN EXECUTABLE FORM FOR ╘╧╨╙-20 AND 4.2 ╒╬╔╪
- SYSTEMS.
-
- ╘O DOWNLOAD A FILE, LOAD AND RUN THIS PROGRAM ON THE ├OMMODORE 64.
- ╒SE THE DUMB TERMINAL MODE TO LOG IN TO THE REMOTE HOST. ╙ET THE
- REMOTE HOST FOR HALF DUPLEX COMMUNICATION (THIS PREVENTS THE REMOTE
- HOST FROM ECHOING THE ACKNOWLEDGEMENTS IT RECEIVES BACK TO THE ├64).
- ╘HEN RUN THE DOWNLOAD PROGRAM ON THE REMOTE HOST, INCLUDING THE NAME
- OF THE FILE YOU WISH TO DOWNLOAD TO THE ├64 ON THE COMMAND LINE.
- ╞OR EXAMPLE, TO DOWNLOAD THE FILE FOO, YOU WOULD TYPE ├64┬╧╧╘ ╞╧╧
-
- =============================================================================
-
- 1 ╥┼═ ╞╔╠┼ ├┴╨╘╒╥┼ ╨╥╧╟╥┴═; ╥╧┬┼╥╘ ╠┼╬╧╔╠, ┴╒╘╚╧╥.
- 2 ╥┼═ ╫╥╔╘╘┼╬ ─┼├┼═┬┼╥ 1984. ├╠┼┴╬┼─ ╒╨ ╞╧╥ ╟┼╬┼╥┴╠ ╨╒┬╠╔├ ╞┼┬╥╒┴╥┘ 1985.
- 5 ╨╥╔╬╘ "[├╠┼┴╥]╬╧╫ ╔╬ ─╒═┬ ╘┼╥═╔╬┴╠ ═╧─┼. ╨╥┼╙╙ ╞1 ╦┼┘";
- 6 ╨╥╔╬╘ "╘╧ ┬┼╟╔╬ ╥┼├┼╔╓╔╬╟ ╞╔╠┼. (═┴╦┼ ╙╒╥┼ ╘╚┴╘";
- 7 ╨╥╔╬╘ "╚╧╙╘ ╔╙ ╙┼╘ ╞╧╥ ╚┴╠╞-─╒╨╠┼╪.) ╨╥┼╙╙ ╞7"
- 8 ╨╥╔╬╘ "╦┼┘ ╘╧ ┼╪╔╘ ╨╥╧╟╥┴═."
- 9 ╨╥╔╬╘ "----------------------------------------";
- 10 ╧╨┼╬ 1,2,0,├╚╥$(38)+├╚╥$(161) : ╧╨┼╬ 15,8,15
- 15 ╟┼╘ ┴$ : ╔╞ ┴$ = ├╚╥$(133) ╘╚┼╬ 20
- 16 ╔╞ ┴$ = ├╚╥$(136) ╘╚┼╬ ╨╥╔╬╘ "╤╒╔╘╘╔╬╟" : ├╠╧╙┼ 1 : ┼╬─
- 18 ╨╥╔╬╘┴$; : ╨╥╔╬╘#1,┴$; : ╟┼╘#1,┴$ : ╟╧╙╒┬ 150 : ╨╥╔╬╘┴$; : ╟╧╘╧ 15
- 20 ╞$="" : ╔╬╨╒╘ "╠╧├┴╠ ╞╔╠┼╬┴═┼";╞$
- 23 ╔╞ ╞$="" ╘╚┼╬ ├╠╧╙┼ 15 : ├╠╧╙┼ 1 : ╨╥╔╬╘ "╤╒╔╘╘╔╬╟" : ┼╬─
- 25 ╧╨┼╬ 8,8,8,"0:"+╞$+",╙,╫"
- 30 ╟╧╙╒┬ 60 : ╔╞ ┼╬$ > "00" ╘╚┼╬ ├╠╧╙┼ 8 : ╟╧╘╧ 20
- 35 ╟┼╘#1,┴$ : ╔╞ ┴$ > "" ╟╧╘╧ 35
- 40 ╟╧╙╒┬ 45 : ╟╧╘╧ 190
- 45 ╨╥╔╬╘#1,"OK" : ╥┼╘╒╥╬ :╥┼═ "╧╦" ╧╬ ╥┼═╧╘┼ ╚╧╙╘
- 47 ╨╥╔╬╘#1,"NG" : ╥┼╘╒╥╬ :╥┼═ "╬╟" ╧╬ ╥┼═╧╘┼ ╚╧╙╘
- 60 ╔╬╨╒╘#15,┼╬$,┼═$,┼╘$,┼╙$ : ╔╞ ┼╬$ > "00" ╘╚┼╬ ╨╥╔╬╘ "[╥╓╙ ╧╬]"┼╬$┼═$┼╘$┼╙$
- 61 ╥┼╘╒╥╬
- 150 ╥┼═ ├╧╬╓┼╥╘ ┴╙├╔╔ ╘╧ ╨┼╘┴╙├╔╔
- 155 ┴ = ┴╙├(┴$+├╚╥$(0)) : ╔╞ ┴ > 64 ┴╬─ ┴ < 91 ╘╚┼╬ ┴ = ┴ + 128
- 160 ╔╞ ┴ > 96 ┴╬─ ┴ < 123 ╘╚┼╬ ┴ = ┴ - 32
- 165 ╔╞ ┴=127 ╘╚┼╬ ┴=20
- 170 ┴$=├╚╥$(┴) :╥┼╘╒╥╬
- 190 ╠$="" : ├╦=0
- 195 ╟┼╘#1,┴$ : ╔╞ ┴$="" ╘╚┼╬ 195
- 197 ╔╞ ┴$=├╚╥$(13) ╘╚┼╬ 200
- 198 ├╦ = ├╦ + ┴╙├(┴$) : ╠$ = ╠$ +┴$ : ╨╥╔╬╘ ┴$; : ╟╧╘╧ 195
- 200 ╨╥╔╬╘ : ├╦$=""
- Ç*FP0
- ╨AGE 30 ├64 ╦┼╥═╔╘ ╒SER ╟UIDE
-
-
- 202 ╟┼╘#1,┴$ : ╔╞ ┴$="" ╘╚┼╬ 202
- 203 ╔╞ ┴$ <> ├╚╥$(13) ╘╚┼╬ ├╦$ = ├╦$ + ┴$ : ╟╧╘╧ 202
- 205 ╔╞ ├╦ = ┴┬╙(╓┴╠(├╦$)) ╘╚┼╬ 210
- 207 ╨╥╔╬╘ "[╥╓╙ ╧╬]├╚┼├╦╙╒═ ┼╥╥╧╥ - ╙┼╬─╔╬╟ ╬┴├╦" : ╟╧╙╒┬ 47 : ╟╧╘╧ 190
- 210 ╨╥╔╬╘#8,╠$ : ╟╧╙╒┬ 60 : ╔╞ ┼╬$ > "00" ╘╚┼╬ ╙╘╧╨ :╥┼═ (╞┴╘┴╠?) ─╔╙╦ ┼╥╥╧╥
- 215 ╟╧╙╒┬ 45 : ╔╞ ╠┼╞╘$(├╦$,1) <> "-" ╘╚┼╬ 190
- 220 ├╠╧╙┼ 8 : ╨╥╔╬╘ ╞$" ─╧╫╬╠╧┴─┼─; ╥┼╘╒╥╬╔╬╟ ╘╧ ╘┼╥═╔╬┴╠ ═╧─┼" : ╟╧╘╧ 15
- L├64┬╧╧╘.├ - ═┴╔╬╞╥┴═┼ ╙╔─┼ ╧╞ ┬╧╧╘╙╘╥┴╨ ╨AGE 31
-
-
- ╔╔╔. ├64┬╧╧╘.├ - ═┴╔╬╞╥┴═┼ ╙╔─┼ ╧╞ ┬╧╧╘╙╘╥┴╨
-
- /* "C64BOOT.C" INITIAL DOWNLOAD PROGRAM FOR ╒NIX SYSTEMS *
- * PROGRAM TO DOWNLOAD FILES TO ├64, MODELLED ON ├64┬╧╧╘.├╠╒
- * SENDS LINES, ONE AT A TIME, EACH FOLLOWED BY A CHECKSUM.
- * THE ├64 VALIDATES CKSUM AND RETURNS "╧╦" OR "╬╟".
- * LAST LINE CKSUM SENT WITH LEADING "-" TO SIGNIFY EOF.
- * ┴LTHOUGH WRITTEN ON A ╒NIX SYSTEM, THE ├ CODE CONTAINS
- * NO KERNAL CALLS AND SHOULD BE FAIRLY PORTABLE.
- * ╫RITTEN BY: ┴LASTAIR ═AYER, ╒. OF ╟UELPH, 2-┴PR-85
- * ( ACDMAYER@UOGUELPH.BITNET )
- */
- #INCLUDE <STDIO.H>
- #DEFINE ┬╒╞╞═┴╪ 256
- #DEFINE ┼╧╙ '\0'
-
- MAIN(ARGC,ARGV)
- INT ARGC;
- CHAR *ARGV[];
- █
-
- CHAR RECEIVED[┬╒╞╞═┴╪],
- LINE[┬╒╞╞═┴╪];
- CHAR *C;
- INT CHECKSUM = 0;
- INT EOF = 0;
- ╞╔╠┼ *FD;
-
- IF (ARGC>1)
- FD = FOPEN(ARGV[1],"R");
- IF (FD == ╬╒╠╠) █
- FPRINTF(STDERR,"%S: CAN'T OPEN '%S'\N",ARGV[0],ARGV[1]);
- EXIT(-1);
- ▌
- WHILE (STRCMP(RECEIVED,"╧╦"))
- SCANF("%[?\N]%*C",RECEIVED);
- /* WAIT FOR STARTING "╧╦" */
-
- WHILE ( (! EOF) ▄▄ (STRCMP(RECEIVED,"╬╟")==0)) █
- IF (STRCMP(RECEIVED,"╧╦")==0) █
- LINE[0] = ┼╧╙; /* CLEAR IT FIRST */
- EOF = (FSCANF(FD,"%[?\N]%*C",LINE) < 0);
- ▌
- CHECKSUM = 0;
- FOR (C=LINE; *C ; C++) █
- PUTCHAR(*C);
- CHECKSUM += *C;
- ▌
- PUTCHAR('\N');
- IF (EOF) PUTCHAR('-');
- CHECKSUM &= 0177;
- PUTCHAR(CHECKSUM);
- Ç*FP0
- ╨AGE 32 ├64 ╦┼╥═╔╘ ╒SER ╟UIDE
-
-
- PUTCHAR('\N');
- RECEIVED[0] = ┼╧╙; /* CLEAR IT IN CASE WE DON'T READ ANYTHING */
- SCANF("%[?\N]%*C",RECEIVED);
- ▌
- ▌
- Ç*FP0
- ╘ABLE OF ├ONTENTS ╨AGE I
-
-
- ╘ABLE OF ├ONTENTS
-
- 1. ╔NTRODUCTION 1
-
- 1.1. ╧VERVIEW 1
- 1.2. ╙YSTEM ╥EQUIREMENTS 2
-
- 2. ╔MPLEMENTATION ╬OTES 3
-
- 2.1. ╦NOWN ┬UGS, ╥ESTRICTIONS 3
- 2.2. ╚╔╬╘╙ 3
- 2.3. ╬OTES 3
- 2.4. ╦┼╥═╔╘ ╥UNTIME ═EMORY ═AP 3
- 2.5. ╞UTURE ╨LANS 4
-
- 3. ╥UNNING ╦┼╥═╔╘ 6
-
- 3.1. ┬OOTING ╦┼╥═╔╘ 6
- 3.2. ├OMMANDS IN ╦┼╥═╔╘ 6
- 3.3. ╔╬╔╘ ╞ILES 20
-
- 4. ╦┼╥═╔╘-65 ╙┘╙╘┼═ ╔╬╙╘┴╠╠┴╘╔╧╬ ╟╒╔─┼ 21
-
- 4.1. ╘╚┼ ╞╔╠┼╙ 21
- 4.2. ┬UILDING ╦┼╥═╔╘-65 21
- 4.3. ╟ENERAL ╨ROCEDURES AND ├ONVENTIONS 22
- 4.4. ╠OADING AN ASSEMBLED FILE 22
- 4.5. ╠OADING A NEW VERSION OF ╦┼╥═╔╘-65 24
- 4.6. ╠OADING FROM A .╚┼╪ FILE 24
- 4.7. ╠OADING FROM THE BINARY VERSION 25
-
- ╔. ├HARACTER AND ├ONTROL ├ODE ─EFINITIONS 26
-
- ╔.1. ╦EYBOARD ╠AYOUT 26
- ╔.2. ╟╠┴╙╙ TERMINAL 27
- ╔.3. ╓╘-52 ╘ERMINAL 27
-
- ╔╔. ├64┬╧╧╘.┬┴╙ - ┬╧╧╘╙╘╥┴╨ ╨╥╧╟╥┴═ ╞╧╥ ├64─╪╠ 29
-
- ╔╔╔. ├64┬╧╧╘.├ - ═┴╔╬╞╥┴═┼ ╙╔─┼ ╧╞ ┬╧╧╘╙╘╥┴╨ 31
- Ç*FP0
- ╨AGE II ├64 ╦┼╥═╔╘ ╒SER ╟UIDE
-
-
- ╠IST OF ╘ABLES
- ╘ABLE ╔-1: ├ONTROL ├ODES ╞OR ╟LASS ╘╘┘ 27
- ╘ABLE ╔-2: ┼SCAPE ╙EQUENCES FOR ╓╘-52 27
-